Providing deep links in association with toolbars

ABSTRACT

Computer-readable media, computer systems, computing methods, and computing devices for providing deep-link notifications is provided. In embodiments, the method includes identifying one or more deep links that correspond with a navigated to website. Such deep links may be identified using a search service. The deep links can be comprised of popular links within the website other than a main page of the website. Upon identifying deep links that correspond with a navigated to website, a deep-link notification is provided via a toolbar. The deep-link notification provides an indication that deep links are available for the website.

BACKGROUND

Navigation models associated with many websites may be confusing tousers attempting to navigate the websites. In this regard, a uservisiting a website for a first time, a user that has not recentlyvisited a website, or a user visiting a website that has a revisednavigation model may have difficulty navigating to particular portionsof the website. By way of example only, navigation links used tonavigate to specific portions of websites may be listed at variouslocations within websites (e.g., on the left portion of the webpage,across the top portion of the webpage, scattered throughout the webpage,etc.) or may be listed in various orders (e.g., an alphabetical order, apopularity order, a seemingly random order, etc.). Because of suchinconsistencies in link positions and/or orders, it is oftentimesdifficult for a user to find a particular link to navigate to anotherportion of the website. Accordingly, users may spend an unnecessaryamount of time finding a specific link. This results in a poor userexperience, longer task-completion time, and less successful navigationwithin a website.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used in isolation as an aid in determining the scope of the claimedsubject matter.

According to embodiments of the invention, deep links that point to aspecific item within a website other than a main page of the website areprovided via a toolbar. Upon a user navigating to a network document(e.g., a website or webpage), a domain associated with the document isidentified. Such a domain can be utilized to identify one or more deeplinks that correspond with the navigated to document. For example, toidentify a deep link(s), a search service can be queried using thedomain (or a variation thereof) as a query to obtain a relevant searchresult(s) and/or a deep link(s) associated with the domain representingthe document. In accordance with identifying deep links, a deep-linknotification can be presented to provide an indication that deep linkscorresponding with the navigated to document exist or are available. Inthis regard, a deep-link notification including the deep links can bedisplayed to a user via a toolbar within a web browser. Accordingly, auser can navigate a website using deep links provided in associationwith a toolbar.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are described in detail below withreference to the attached drawing figures, wherein:

FIG. 1 is a block diagram of an exemplary computing device suitable forimplementing embodiments of the invention;

FIG. 2 is a schematic diagram depicting an illustrative display of asearch result item and corresponding deep links;

FIG. 3 provides an exemplary illustration of a deep-link notification,in accordance with embodiments of the invention;

FIG. 4 is a block diagram of an exemplary network environment suitablefor use in implementing embodiments of the invention;

FIG. 5 is a flow diagram depicting an illustrative method for presentingdeep links, according to embodiments of the invention; and

FIG. 6 is a flow diagram depicting an illustrative method of presentinga deep-link notification, in accordance with embodiments of theinvention.

DETAILED DESCRIPTION

The subject matter of embodiments of the invention disclosed herein isdescribed with specificity to meet statutory requirements. However, thedescription itself is not intended to limit the scope of this patent.Rather, the inventors have contemplated that the claimed subject mattermight also be embodied in other ways, to include different steps orcombinations of steps similar to the ones described in this document, inconjunction with other present or future technologies. Moreover,although the terms “step” and/or “block” may be used herein to connotedifferent elements of methods employed, the terms should not beinterpreted as implying any particular order among or between varioussteps herein disclosed unless and except when the order of individualsteps is explicitly described.

Embodiments of the invention described herein include computer-readablemedia having computer-executable instructions for performing a method ofproviding deep-link notifications. The method includes identifying deeplinks that correspond with a navigated to website. Each of the deeplinks comprises a link that points to a specific item within the websiteother than a main page of the website. In embodiments, a deep link is apopular link or commonly clicked or selected link on a particularwebpage. A deep-link notification can be provided via a toolbar. Thedeep-link notification provides an indication that the one or more deeplinks are available for the website.

In a second illustrative embodiment, a graphical user interface embodiedon one or more computer-readable media and executable on a computer isprovided. The graphical user interface includes a first display areaconfigured for displaying a web document. The graphical user interfacealso includes a second display area positioned near the first displayarea. The second display area includes a toolbar that displays adeep-link notification indicating one or more deep links are available,via the toolbar, for use in navigating the web document displayed in thefirst display area, each of the one or more deep links comprising a linkthat points to a specific item within the web document other than a mainpage of the web document.

In a third illustrative embodiment a method of providing deep-linknotifications is provided. The method includes identifying a domainassociated with a navigated to website and determining that the domainis included within a domain white list that specifies a set of one ormore domains for which deep links should be identified. A search requestis presented to a search service to request search results (e.g.,including deep links) that correspond with the domain. A searchresult(s) that corresponds with the domain is received. The searchresult(s) is used to identify deep links associated with the website. Adeep-link notification is presented that indicates at least one deeplink is available for use in navigating the website.

Various aspects of embodiments of the invention may be described in thegeneral context of computer program products that include computer codeor machine-useable instructions, including computer-executableinstructions such as program modules, being executed by a computer orother machine, such as a personal data assistant or other handhelddevice. Generally, program modules including routines, programs,objects, components, data structures, etc., refer to code that performparticular tasks or implement particular abstract data types.Embodiments of the invention may be practiced in a variety of systemconfigurations, including dedicated servers, general-purpose computers,laptops, more specialty computing devices, and the like. The inventionmay also be practiced in distributed computing environments where tasksare performed by remote-processing devices that are linked through acommunications network.

Computer-readable media include both volatile and nonvolatile media,removable and nonremovable media, and contemplate media readable by adatabase, a processor, and various other networked computing devices. Byway of example, and not limitation, computer-readable storage mediainclude media implemented in any method or technology for storinginformation. Examples of stored information include computer-executableinstructions, data structures, program modules, and other datarepresentations. Computer-readable storage media examples include RAM,ROM, EEPROM, flash memory and other memory technology, CD-ROM, digitalversatile discs (DVD), holographic media and other optical disc storage,magnetic cassettes, magnetic tape, magnetic disk storage, and othermagnetic storage devices. These technologies can store data momentarily,temporarily, or permanently. Computer-readable storage media may betangible or non-transitory.

An exemplary operating environment in which various aspects of thepresent invention may be implemented is described below in order toprovide a general context for various aspects of the present invention.Referring initially to FIG. 1, an exemplary operating environment forimplementing embodiments of the present invention is shown anddesignated generally as computing device 100. The computing device 100is but one example of a suitable computing environment and is notintended to suggest any limitation as to the scope of use orfunctionality of the invention. Neither should the computing device 100be interpreted as having any dependency or requirement relating to anyone or combination of components illustrated.

The computing device 100 includes a bus 110 that directly or indirectlycouples the following devices: a memory 112, one or more processors 114,one or more presentation components 116, input/output (I/O) ports 118,input/output components 120, and an illustrative power supply 122. Thebus 110 represents what may be one or more busses (such as an addressbus, data bus, or combination thereof). Although the various blocks ofFIG. 1 are shown with lines for the sake of clarity, in reality,delineating various components is not so clear, and metaphorically, thelines would more accurately be gray and fuzzy. For example, one mayconsider a presentation component such as a display device to be an I/Ocomponent. Also, processors have memory. The inventors recognize thatsuch is the nature of the art, and reiterate that the diagram of FIG. 1is merely illustrative of an exemplary computing device that can be usedin connection with one or more embodiments of the present invention.Distinction is not made between such categories as “workstation,”“server,” “laptop,” “hand-held device,” etc., as all are contemplatedwithin the scope of FIG. 1 and reference to “computing device.”

The memory 112 includes computer-executable instructions (not shown)stored in volatile and/or nonvolatile memory. The memory may beremovable, nonremovable, or a combination thereof. Exemplary hardwaredevices include solid-state memory, hard drives, optical-disc drives,etc. The computing device 100 includes one or more processors 114coupled with a system bus 110 that read data from various entities suchas the memory 112 or I/O components 120. In an embodiment, the one ormore processors 114 execute the computer-executable instructions toperform various tasks and methods defined by the computer-executableinstructions. The presentation component(s) 116 are coupled to thesystem bus 110 and present data indications to a user or other device.Exemplary presentation components 116 include a display device, speaker,printing component, and the like.

The I/O ports 118 allow computing device 100 to be logically coupled toother devices including the I/O components 120, some of which may bebuilt in. Illustrative components include a microphone, joystick, gamepad, satellite dish, scanner, printer, wireless device, keyboard, pen,voice input device, touch-input device, touch-screen device, interactivedisplay device, or a mouse. The I/O components 120 can also includecommunication connections that can facilitate communicatively connectingthe computing device 100 to remote devices such as, for example, othercomputing devices, servers, routers, and the like.

Embodiments of the present invention are directed to providing deeplinks, for example, in association with a toolbar such that a user hasaccess to deep links while navigating within a website. Deep links havebeen traditionally provided in association with a search results page.As illustrated in FIG. 2, in response to a user query, a set of one ormore deep links 202 can be displayed in association with a search result204 within a search results page 200. Such deep links 202 enable a userto directly navigate to a specific item (e.g., a webpage or an image)within the website corresponding with the search result. Upon navigatingto a website, however, a user currently does not have access to suchdeep links provided in association with a search service.

In accordance with embodiments of the present invention, deep links, ora notification thereof, are provided in association with a toolbar suchthat a user has access to deep links corresponding with a websitecurrently being navigated. Accordingly, embodiments of the presentinvention facilitate providing deep links in connection with a toolbarto enable a user to navigate within a website using such deep links. Adeep link refers to a link, such as a hyperlink, that points to aspecific page or image within a website other than the website's main orhome page. In this way, a uniform resource locator (URL) of a deep linkcontains all the information needed to point to a particular item.

As used herein, a deep link includes a representation of a link thatpoints to a specific page or image within a website other than thewebsite's main or home page. Accordingly, deep links can be presented,for example, as text, snippets, thumbnails, summaries, answers, and thelike. In this regard, a deep link includes a selectable representationof a link that corresponds with a uniform resource locator (URL), IPaddress, or other type of location or address. As such, selection of adeep link can result in redirection of the user's browser to thecorresponding address, whereby the user can access the associatedcontent.

As previously mentioned, according to embodiments of the presentinvention, deep links can be displayed to a user via a toolbar. Atoolbar(s) may be provided in a web browser window and may include, forexample, tabs for aiding a user in navigating the Web and in organizingdisplay space. A toolbar may additionally or alternatively include oneor more shortcut buttons that provide ease of access to commonly usedfunctions and/or one or more of a multitude of web browser add-oncomponents that are available in the art. In one embodiment, a toolbaris a search toolbar that provides a search interface. For instance, asearch toolbar may reside near a web browser tab bar and provide asearch box to carry out web searches.

By way of example only, FIG. 3 provides a view of a web browser 300having a traditional set of links 314 to various portions of thewebsite. For instance, the “Furniture” link 316 within the display pane308, if selected, results in navigation to furniture items that can bepurchased via the website. A toolbar 306 is displayed above the displaypane 308. The toolbar 306 includes a deep-link notification 310 thatprovides a notification that deep links are available to a user toutilize to navigate within the website displayed within the display pane308. Accordingly, a user can select a deep link, such as “store locator”deep link 318, within the deep-link notification 310 to navigatedirectly to the specific webpage corresponding with the deep link.

Turning now to FIG. 4, a block diagram of an exemplary networkenvironment 400 suitable for use in implementing embodiments of theinvention is shown. The network environment 400 includes a user device410, a search service 412, and a deep-link notification service 414. Theuser device 410, the search service 412, and the deep-link notificationservice 414 may communicate through a network 416, which may include anynumber of networks such as, for example, a local area network (LAN), awide area network (WAN), the Internet, a cellular network, apeer-to-peer (P2P) network, a mobile network, or a combination ofnetworks. The network environment 400 shown in FIG. 4 is an example ofone suitable network environment and is not intended to suggest anylimitation as to the scope of use or functionality of embodiments of theinventions disclosed throughout this document. Neither should theexemplary network environment 400 be interpreted as having anydependency or requirement related to any single component or combinationof components illustrated therein. For example, the user device 410 maybe in communication with the search service 412 via a mobile network orthe Internet, and the search service 412 may be in communication withthe deep-link notification service 414 via a local area network.Further, although the environment 400 is illustrated with a network, oneor more of the components may directly communicate with one another, forexample, via HDMI (high-definition multimedia interface), DVI (digitalvisual interface), etc. Alternatively, one or more of the components maybe integrated with one another, for example, at least a portion of thedeep-link notification service 414 may be integrated with the userdevice 410, or a portion thereof (e.g., a web browser).

The user device 410 can be any kind of computing device capable ofallowing a user to navigate websites. For example, in an embodiment, theuser device 410 can be a computing device such as computing device 100,as described above with reference to FIG. 1. In embodiments, the userdevice 410 can be a personal computer (PC), a laptop computer, aworkstation, a mobile computing device, a PDA, a cell phone, or thelike.

In an embodiment, the user device 410 is separate and distinct from thesearch service 412 and/or the deep-link notification service 414illustrated in FIG. 4. In another embodiment, the user device 410 isintegrated with the search service 412 and/or the deep-link notificationservice 414, or a portion thereof. For example, at least a portion ofthe deep-link notification service 414 may reside on the user device410. For clarity of explanation, we shall describe embodiments in whichthe user device 410, the search service 412, and the deep-linknotification service 414 are separate, while understanding that this maynot be the case in various configurations contemplated within thepresent invention.

With continued reference to FIG. 4, the user device 410 communicateswith the search service 412 to facilitate a search for content. Inembodiments, for example, a user utilizes the user device 410 to searchfor content available via the network 416. For instance, in someembodiments, the network 416 might be the Internet, and the user device410 interacts with the search service 412 to search for content storedon servers associated with websites. In other embodiments, for example,the network 416 might be an enterprise network associated with acompany. In these embodiments, the user device 410 interacts with thesearch service 412 to search for content stored on various nodes withinthe enterprise network. It should be apparent to those having skill inthe relevant arts that any number of other implementation scenarios maybe possible as well.

The search service 412 provides searching services. In embodiments, thesearch service 412 provides searching services by searching for contentin an environment in which content can be stored such as, for example,the Internet, a local area network (LAN), a wide area network (WAN), adatabase, a computer, or the like. The search service 412, according toembodiments, can be implemented as server systems, program modules,virtual machines, components of a server or servers, networks, and thelike.

In embodiments, the search service 412 receives search queries, i.e.,search requests, submitted by a user via the user device 410 and/orsubmitted by the deep-link notification service 414. Search queriesreceived from a user can include search queries that were manually orverbally input by the user, queries that were suggested to the user andselected by the user, and any other search queries received by thesearch service 412 that were somehow approved by the user. Additionallyor alternatively, the search service 412 can receive search queriesoriginating from the deep-link notification service 414, or a portionthereof. For instance, the deep-link notification service 414 canprovide search queries or requests in response to user navigation to awebsite, as discussed more fully below. Generally, the search service412 can receive search queries from any number of people, locations,organizations, and devices.

The search service 412 may be or include, for example, a search engine,a crawler, or the like. The search service 412, in some embodiments, isconfigured to perform a search using a query submitted through the userdevice 410 and/or a query submitted via the deep-link notificationservice 414. In an embodiment, the search service 412 is configured toreceive a submitted query (e.g., via the user device 410 and/or thedeep-link notification service 414) and to use the query to perform asearch. In an embodiment, upon identifying search results and/or deeplinks that satisfy the search query, the search service 412 returns aset of one or more search results and/or deep links to the user device410 and/or the deep-link notification service 414. Such search resultsand/or corresponding deep links may be displayed by way of a graphicalinterface. For example, deep links may be displayed via a deep-linknotification presented in connection with a toolbar.

As can be appreciated, the search service 412 may communicate with thedeep-link notification service 414 to integrate deep links inassociation with a toolbar. In this regard, the search service 412 maycommunicate deep links to deep-link notification service 414 forincorporation of the deep links in connection with a toolbar. In yetanother embodiment, another component, such as the user device 410, mayreceive data from the search service 412 and/or the deep-linknotification service 414 and, thereafter, integrate deep links inassociation with a toolbar.

The deep-link notification service 414 generally provides one or moredeep links, or a notification thereof, to be displayed, for example, inassociation with a toolbar. The deep-link notification service 414, insome embodiments, includes a domain identifier 420, a deep-linkidentifier 422, and a deep-link presenter 424. According to embodimentsof the invention, the deep-link notification service 414 can include anynumber of other components not illustrated. In some embodiments, one ormore of the illustrated components 420, 422, and 424 can be integratedinto a single component or can be divided into a number of differentcomponents. Components 420, 422, and 424 can be implemented on anynumber of machines and can be integrated, as desired, with any number ofother functionalities or services. In embodiments, one or more of theillustrated components 420, 422, and 424 may be integrated into theoperating system of a user device and/or a server in communicationtherewith or integrated with a web browser, or a toolbar associatedtherewith, of a user device. For example, the deep-link notificationservice 414 may be a toolbar tool that functions as add-on software toan existing web browser software.

The domain identifier 420 is configured to identify domains associatedwith documents (e.g., websites or webpages) being navigated to by auser. As used herein, a domain refers to a host name that identifies aninternet protocol (IP) resource, such as webpage, a website, or thelike. In this regard, a domain refers to, for example, at least aportion of a uniform resource locator (URL). Accordingly, the domainidentifier 420 monitors and identifies domains (e.g., URLs) navigated toby a user. As can be appreciated, the domain identifier 420 can monitorand/or identify domains associated with navigated to websites utilizingany navigational manner, such as via a link or via input into theaddress bar. For example, in connection with a user entering a URL intoan address bar or selecting a link to navigate to a particular websiteor webpage (e.g., via a search results page), the domain identifier 420monitors and identifies the corresponding domain.

Although the domain identifier 420 is described herein as identifyingdomains corresponding with websites, webpages, or documents beingnavigated to by a user, any identifier that uniquely identifieswebsites, webpages, or documents being navigated to can be identifiedand utilized in accordance with embodiments of the present invention.For example, an IP address, a string designated to match a URL, or thelike may additionally or alternative be identified and, thereafter, usedto identify one or more deep links corresponding with the identifier.

The deep-link identifier 422 is configured to identify one or more deeplinks corresponding with navigated to documents (e.g., websites orwebpages) or domains in association therewith. In this regard, thedeep-link identifier 422 can utilize domains associated with navigatedto documents to dynamically identify deep links. Upon identifying adocument being navigated to by a user or a domain in associationtherewith, the deep-link identifier 422 can dynamically identify one ormore deep links associated with such a document and/or domain.

The deep-link identifier 422 may utilize the search service 412 toidentify one or more deep links that correspond with a particulardocument (e.g., a website or webpage). In one embodiment, a query orrequest may be issued (e.g., via an API) to the search service 412 toidentify deep links that correspond with the specific document navigatedto by the user or domain associated therewith. Such a query may be basedon the identified domain (e.g., identified by the domain identifier)that corresponds with the navigated to document. By way of example only,assume that a user navigates to example.com. In accordance with such anavigation, the deep-link identifier 422, or another component, mayprovide a request to the search service 412 for search results and/ordeep links corresponding with the query “example” or “example.com.” Inthis way, the search service 412 can perform a search based on the query“example” and provide search results, or a portion thereof (e.g., aportion of search results or deep links), corresponding with the query“example.” As can be appreciated, in some cases, the search service 412returns all available search results. In other cases, the search service412 returns a portion of available search results, such as, the highestranked search result. In yet other cases, the search service 412 mightreturn deep links associated with a particular search result(s). By wayof example only, the search service 412 may only return the top searchresult or deep links associated with the top search result based arequest from the deep-link notification service 414 for such a result.In another example, the search service 412 may be configured, via adefault setting, to return a particular set of results (e.g., apredefined number, etc.).

The data returned by the search service (e.g., all search results, aportion of the search results, deep links, etc.) can be analyzed todetermine whether any deep links exist for the navigated to document ordomain associated therewith. By way of example only, assume that asearch service returns all search results or multiple search results fora particular query. In cases that deep links are provided for the topsearch result, any search result that is not the top ranked searchresult can be ignored while the top search result is analyzed toidentify whether any deep links exist in association with that searchresult. The deep-link identifier 422 may analyze or verify that thesearch result corresponds with the document or domain. For instance,assume that multiple search results are returned. The deep-linkidentifier 422 may determine, recognize or verify which of the searchresults corresponds with the appropriate domain or navigated todocument.

In addition to or in the alternative to utilizing the search service 412to identify one or more deep links corresponding with a navigated todocument or associated domain, in some embodiments, the deep-linkidentifier 422 may determine such deep links. For example, navigationlogs, such as a toolbar log, may be analyzed to determine deep links fora particular document. A navigation log may monitor URLs visited byusers and store such URLs, for example, within a database. Thenavigation log may be analyzed to determine popular or frequentlyvisited webpage destinations within a website. The URL(s) associatedwith such popular or frequently visited webpage destinations within awebsite may be designated as a deep link for that particular website. Ascan be appreciated, irrespective of whether search services areutilized, deep links may change over time depending on popularity orimportance of specific webpages within a website.

An identification of one or more deep links may be performed for eachdomain navigated to by a user. For example, in one embodiment, upon auser navigating to or passing a website or a webpage, a query can beissued to the search service 412 to identify deep links associated withthe website or webpage. In another embodiment, upon a user navigating toor passing a web document, deep links associated with the website orwebpage can be identified, for instance, using navigation logs.

Alternatively, an identification of one or more deep links may beperformed for a portion of documents navigated to by a user. Forexample, deep links may be identified in cases that the user views awebpage for a particular amount of time, the user has not recentlyviewed a webpage, etc. In some cases, deep links may be identified inaccordance with a domain white list or a domain black list. Such adomain white list and/or a domain black list may be stored, for example,in connection with the toolbar of the user device 410 or in a databasein communication with the deep-link notification service 414. Inembodiments, a domain white list and/or domain black list may be updated(e.g., automatically) to remove domains or to add domains to such listsas appropriate. As can be appreciated, the deep-link notificationservice 414 may be configured to identify deep links for a portion ofdocuments navigated to by a user, for example, to limit networkconsumption. Although the white list and the black list is describedherein as including lists of domains, any identifier that uniquelyidentifies websites, webpages, or documents may be included in suchwhite or black lists, such as, for example, a URL, an IP address, astring designated to match a domain or URL, etc.

A domain white list refers to a list or a set of domains for which deeplinks should be or are to be identified. As can be appreciated, in somecases, the white list may include the corresponding deep links or areference thereto such that querying a search service is not required. Adomain white list may be generated manually or automatically and caninclude any number and manner of domains. For instance, domains includedwithin a white list may be associated with a particular category ofdomains (e.g., domains associated with ecommerce), may be websitesassociated with difficult navigation models, may be websites associatedwith deep links, a combination thereof, or the like. By way of exampleonly, to generate a domain white list, a number of the most popularwebsites (e.g., 2000 websites) may be analyzed to identify particularwebsites that may be difficult for users to navigate.

In implementation, upon identifying a document navigated to by a user(e.g. each document navigated to) or a domain associated therewith, adomain white list may be accessed to determine whether the domaincorresponding with the navigated to document is included within thedomain white list. In this regard, the deep-link identifier 422 maycompare the domain corresponding to the navigated to document with thedomains listed within the domain white list. An algorithm or lookupsystem may be used to determine whether a domain of a navigated todocument is included within the domain white list. For instance, alookup table may be used to perform a linear search of a URL or a matchstring. If the domain of the navigated to document is within the domainwhite list, deep links associated with the domain may be identified, forexample, by issuing a query to a search service and recognizing deeplinks returned therefrom. On the other hand, if the domain of thenavigated to document is not included within the domain white list,navigation continues as typical and the user is not provided with anydeep links via the toolbar.

A domain black list refers to a list or a set of domains for which deeplinks should not be identified. A domain black list may be generatedmanually or automatically and can include any number and manner ofdomains. For instance, domains included within a black list may beassociated with a particular category of domains (e.g., domainsassociated with ecommerce), may be websites associated with simplenavigation models, may be websites not previously associated with deeplinks, a combination thereof, or the like. By way of example only, togenerate a domain black list, a number of the most popular websites(e.g., 2000 websites) may be analyzed to identify particular websitesthat may be easy for users to navigate.

In implementation, upon identifying a document navigated to by a user ora domain associated therewith, a domain black list may be accessed todetermine whether the domain corresponding with the navigated todocument is included within the domain black list. In this regard, thedeep-link identifier 422 may compare the domain corresponding to thenavigated to document with the domains listed within the domain blacklist. An algorithm or lookup system may be used to determine whether adomain of a navigated to document is included within the domain blacklist. For instance, a lookup table may be used to perform a linearsearch of a URL or a match string. If the domain of the navigated todocument is not within the domain black list, deep links associated withthe domain may be identified, for example, by issuing a query to asearch service and recognizing deep links returned therefrom. On theother hand, if the domain of the navigated to document is includedwithin the domain black list, navigation continues as typical and theuser is not provided with any deep links via the toolbar.

The deep-link presenter 424 is configured to present deep links. In oneembodiment, deep links and/or deep-link notifications are presented bydisplaying such data in association with a toolbar to a user via a userinterface. In another embodiment, deep links and/or deep-linknotifications are presented by communicating such data to anothercomputing device. For example, such data may be communicated to a userdevice, so as user device 410, such that the user device can incorporatethe data into the toolbar displayed to the user, via a display screen ofthe user device.

A deep-link notification refers to any notification or indication thatdeep links exist or are available in association with the currentlynavigated to document (e.g., document displayed via a display screen). Adeep-link notification may take any form capable of providingnotification to a user and, in some cases, receiving input from a user.For example, in one embodiment, a deep-link notification may be a textbox including one or more deep links associated with the navigated todocument. In another embodiment, a deep-link notification may be an iconbeing highlighted, blinking, flashing, changing colors, providing text,providing images or icons, providing animation, or otherwise emphasizedto indicate that deep links exist for the navigated to document. A usermay then select or hover over such a deep-link notification to initiatedisplay of corresponding deep links. In some cases, the deep-linknotification can also be used to receive input from a user indicating aninterest in viewing or accessing deep links.

Deep-link notifications can be displayed via a toolbar in any number ofways. In one embodiment, upon identifying one or more deep links topresent, a deep-link notification may be displayed in association withthe toolbar. In this regard, a deep-link notification may be located onthe toolbar or in any location in connection with a toolbar, forexample, near the search tool of the toolbar, etc. Alternatively, adeep-link notification may be located at any available position in a webbrowser window and may even be separate from a web browser window andlocated elsewhere on the display screen.

In one embodiment, the deep-link presenter 424 might present availabledeep links upon receiving a user indication, such as receipt of an inputfrom a user indicating an interest in viewing deep links. For example, adeep-link notification providing an indication of available deep linksmay be initially displayed without providing the specific deep links. Insuch a case, a user may select the deep-link notification to view thecorresponding deep links. In another embodiment, the deep-link presenter424 might present available deep links automatically. In this regard,the deep-link presenter 424 might present available deep links as thedeep-link notification or in connection with the deep-link notificationupon the occurrence of an event, such as a determination that one ormore deep links exists for the currently navigated to document, uponloading a document, upon a lapse of a time, etc. As can be appreciated,any number of deep links can be provided, such as, for example, allavailable deep links, a predetermined number of deep links, etc.

By way of example only, FIG. 3 provides an illustration of a web browser300, according to embodiments of the present invention. Such a webbrowser can be viewed, for example, via a display screen of a userdevice, such as user device 410. The web browser window 300 includes atitle bar 302, a navigation bar 304, a toolbar 306, and a display pane308. Each of the components 302, 304, 306, and 308 are generally knownin the art and may take various forms and configurations in web browserwindows provided by various software providers. One or more of thecomponents 302, 304, 306, and 308 may be modified or excluded from a webbrowser window either by design of a software provider or a preferenceor customization of the web browser window by a user.

The title bar 302 is generally located near a top portion of the webbrowser window 300 and may contain text describing the web browserwindow or a website that is displayed in the display pane 308. Thenavigation bar 304 may provide a variety of navigation functions as wellas a field for displaying a current web location or for entry of a weblocation to which navigation is desired. The toolbar 306 may include oneor more shortcut buttons that provide ease of access to commonly usedfunctions as well as one or more of a multitude of web browser add-oncomponents that are available in the art.

A deep-link notification 310 is provided in association with the toolbar306 for providing notifications to a user regarding available deep linkscorresponding with the website that is displayed in the display pane308. In embodiments, the deep-link notification 310 may be or include aset of one or more deep links 312 that correspond with the websitenavigated to by a user (i.e., displayed in the display pane 308). Suchselectable deep links 312, such as the “store locator” deep link 318,may be selected by a user to navigate to the particular webpagerepresented by the selected deep link.

With continued reference to FIG. 3, the display pane 308 may display awebpage as depicted therein. Such a webpage may include one or morelinks 314 corresponding with the website. The links 314 may be in theform of a World Wide Web address, or a representation thereof.

As can be appreciated, a user may interact with a display screen usingwell known input components, such as, for example, a mouse, joystick,stylus, touch screen, keyboard, or the like. In this regard, a user mayselect a deep link to initiate navigation to the corresponding webpagein association with the selected deep link. For example, assume that auser selects the “store locator” deep link 318. In such a case, theaction of navigating to the webpage associated with locating stores canbe initiated.

To recapitulate, embodiments of the invention include systems, machines,media, methods, techniques, processes and options for providing deeplinks in association with toolbars. Turning to FIG. 5, a flow diagram isillustrated that shows an exemplary method 500 for providing one or moredeep links, according to embodiments of the present invention. In someembodiments, aspects of embodiments of the illustrative method 500 canbe stored on computer-readable media as computer-executableinstructions, which are executed by a processor in a computing device,thereby causing the computing device to implement aspects of the method500. The same is of course true with the illustrative method 600depicted in FIG. 6 or any other embodiment, variation, or combination ofthese methods.

Initially, at block 510, a domain associated with a document beingnavigated to is identified. In this regard, upon a user navigating to awebsite, a domain representing the website is identified. At block 512,one or more deep links associated with the domain are identified. Suchdeep links can be identified using any manner. For example, a searchservice may be accessed to obtain search results and/or deep links thatresult from a query corresponding with the identified domain. At block514, the one or more deep links are presented via a toolbar within a webbrowser. In some cases, a deep link notification that includes the deeplinks is presented via the toolbar. In other cases, a deep linknotification may be presented via the toolbar and, upon selectionthereof, the deep links can be presented.

Turning now to FIG. 6, a flow chart depicts an exemplary method 600 forproviding one or more deep links, according to embodiments of thepresent invention. Initially, at block 610, a domain associated with adocument (e.g., a website or webpage) being navigated to, for example,by a user, is identified. Subsequently, at block 612, a domain whitelist is referenced. A domain white list specifies a set of one or moredomains for which deep links should be identified. Upon referencing thedomain white list, at block 614, the identified domain is compared tothe white list to determine if the identified domain is listed withinthe domain white list. If the domain is not listed within the domainwhite list, the method ends at block 616. If, on the other hand, thedomain is listed within the domain white list, a search request ispresented to a search service to request search results, or a portionthereof, in association with the domain. This is indicated at block 618.

Search results, or a portion thereof (e.g., deep links), that correspondwith the domain are received, as indicated at block 620. In this regard,the search service might return a search result(s), which may includecorresponding deep links, or might return deep links (e.g., thatcorrespond with the domain or the top search result). Thereafter, atblock 622, one or more deep links associated with the domain areidentified based on the received search results, or a portion thereof.For instance, deep links corresponding with a search result may beextracted and/or identified. At block 624, a deep-link notification ispresented. For example, a deep-link notification may be displayed to auser via a display screen of a user device. The deep-link notificationprovides a notification or indication to a user that one or more deeplinks exist for the website being currently displayed. In oneembodiment, the deep-link notification includes the one or more deeplinks. In another embodiment, the deep-link notification can be selectedby a user and, in response thereto, the deep links can be presented. Ascan be appreciated, in cases that one or more deep links are notidentified, for example, when such deep links do not exist for aparticular website, a deep-link notification is not displayed to a user.

Various embodiments of the invention have been described to beillustrative rather than restrictive. Alternative embodiments willbecome apparent from time to time without departing from the scope ofembodiments of the inventions. It will be understood that certainfeatures and sub-combinations are of utility and may be employed withoutreference to other features and sub-combinations. This is contemplatedby and is within the scope of the claims.

1. One or more computer-readable storage media having embodied thereon computer-executable instructions that, when executed by a processor in a computing device, cause the computing device to perform a method of providing deep-link notifications, the method comprising: dynamically identifying one or more deep links that correspond with a navigated to website upon navigating to said website, each of the one or more deep links comprising a link that points to a specific item within the website other than a main page of the website; and providing a deep-link notification via a toolbar, the deep-link notification providing an indication that the one or more deep links are available for the website.
 2. The media of claim 1 further comprising identifying a domain associated with the navigated to website.
 3. The media of claim 2 further comprising using the domain associated with the website to identify the one or more deep links that correspond with the navigated to website.
 4. The media of claim 3, wherein identification of the one or more deep links that correspond with the navigated to website comprises: providing a search query to a search service based on the domain associated with the navigated to website; and receiving at least one search result or at least one deep link from the search service based on the search performed for the search query.
 5. The media of claim 4, wherein identification of the one or more deep links that correspond with the navigated to website further comprises determining that the domain is included within a white list that specifies a set of one or more domains for which deep links should be identified.
 6. The media of claim 1, wherein the deep-link notification includes the one or more deep links.
 7. The media of claim 1 further comprising: receiving a user selection of the deep-link notification; and providing the one or more deep links in response to receiving the user selection of the deep-link notification.
 8. The media of claim 1, wherein the toolbar is displayed within a web browser separate from the website.
 9. A graphical user interface embodied on one or more computer-readable media and executable on a computer, the graphical user interface comprising: a first display area configured for displaying a web document; and a second display area positioned near the first display area, the second display area comprising a toolbar that displays a deep-link notification that indicates one or more deep links are available, via the toolbar, for use in navigating the web document displayed in the first display area, each of the one or more deep links comprising a link that points to a specific item within the web document other than a main page of the web document.
 10. The graphical user interface of claim 9, wherein the deep-link notification comprises an icon that is highlighted, blinks, flashes, changes colors, provides text, provides an image, or provides an animation.
 11. The graphical user interface of claim 10, wherein the deep-link notification is selectable to display the available one or more deep links.
 12. The graphical user interface of claim 9, wherein the deep-link notification includes the available one or more deep links.
 13. The graphical user interface of claim 9, wherein the specific item comprises a webpage or an image.
 14. A method of providing deep-link notifications, the method comprising: identifying a domain associated with a navigated to website; determining that the domain is included within a domain white list that specifies a set of one or more domains for which deep links should be identified; presenting a search request to a search service to request search results that correspond with the domain; receiving at least one search result that corresponds with the domain; utilizing the at least one search result to identify one or more deep links associated with the website; and presenting a deep-link notification that indicates at least one deep link is available for use in navigating the website.
 15. The method of claim 14, the deep-link notification being presented in connection with a toolbar of a web browser.
 16. The method of claim 15, wherein the deep-link notification includes the one or more deep links.
 17. The method of claim 16, wherein presenting the deep-link notification comprises displaying the deep-link notification to a user via a display screen.
 18. The method of claim 17 further comprising: receiving a selection of the deep-link notification; and in response to the selection of the deep-link notification, displaying the one or more deep links.
 19. The method of claim 14, wherein the at least one search result includes an indication of the one or more deep links.
 20. The method of claim 14, wherein the search request comprises a search query for the domain. 